package com.huashi.dealer.modular.business.order.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.huashi.dealer.commonEntity.OrderGoods;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 订单商品Mapper接口
 */
@Mapper
public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {

    /**
     * 根据订单ID查询订单商品列表
     * @param orderId 订单ID
     * @return 订单商品列表
     */
    List<OrderGoods> getOrderGoodsByOrderId(@Param("orderId") Integer orderId);

    /**
     * 根据用户ID查询订单商品列表
     * @param userId 用户ID
     * @return 订单商品列表
     */
    List<OrderGoods> getOrderGoodsByUserId(@Param("userId") Integer userId);

    /**
     * 根据商品ID查询订单商品列表
     * @param goodsId 商品ID
     * @return 订单商品列表
     */
    List<OrderGoods> getOrderGoodsByGoodsId(@Param("goodsId") Integer goodsId);

    /**
     * 根据订单ID和商品ID查询订单商品
     * @param orderId 订单ID
     * @param goodsId 商品ID
     * @return 订单商品
     */
    OrderGoods getOrderGoodsByOrderIdAndGoodsId(@Param("orderId") Integer orderId, @Param("goodsId") Integer goodsId);

    /**
     * 根据小程序ID查询订单商品列表
     * @param wxappId 小程序ID
     * @return 订单商品列表
     */
    List<OrderGoods> getOrderGoodsByWxappId(@Param("wxappId") Integer wxappId);

    /**
     * 根据订单ID列表查询订单商品列表
     * @param orderIds 订单ID列表
     * @return 订单商品列表
     */
    List<OrderGoods> getOrderGoodsByOrderIds(@Param("orderIds") List<Integer> orderIds);

    /**
     * 根据评价状态查询订单商品列表
     * @param isComment 是否已评价(0否 1是)
     * @return 订单商品列表
     */
    List<OrderGoods> getOrderGoodsByCommentStatus(@Param("isComment") Integer isComment);

    /**
     * 根据发货状态查询订单商品列表
     * @param isOrderExpress 是否发货（10未发货，20已发货）
     * @return 订单商品列表
     */
    List<OrderGoods> getOrderGoodsByExpressStatus(@Param("isOrderExpress") Integer isOrderExpress);

    /**
     * 根据商品类型查询订单商品列表
     * @param isType 分类（10商品，20赠品）
     * @return 订单商品列表
     */
    List<OrderGoods> getOrderGoodsByType(@Param("isType") Integer isType);
} 